#pragma once

#include <cmath>
#include <iostream>

namespace codewar {
	bool narcissistic( int value ){
		int testvalue = 0;
		const int expBase = std::log10(value);
		const int x = value;

		
		for( int exp = expBase; exp >= 0; exp-- ){
			int topDigit = value / std::pow(10, exp);
			testvalue += std::pow(topDigit, expBase + 1);
			value -= std::pow(10, exp) * topDigit;
		}

		// best
// 		while( value ){
// 			testvalue += pow( value % 10 , expBase + 1  );
// 			value /= 10;
// 		}

		return testvalue == x;
	}
}
